1. Field of the Invention
The invention relates in general to a memory and a method for programming the same, and more particularly to a method for programming a memory capable of increasing programming speed.
2. Description of the Related Art
Memories are now applied to various data storage. Referring to FIG. 1, a flowchart of a conventional method for programming a memory is shown. The memory includes multiple rows of memory cells each including two half cells. Firstly, in step S100, an initial bias voltage IV1 is applied to program the first row memory cells, and the programming voltage keeps increasing until the first row memory cells all pass programming verification. For example, the initial bias voltage IV1 is 2V, and then is increased step by step.
However, in response to the programming of each half cell, if the programming voltage starts with 2V and gradually increases until the half cell passes programming verification, a longer time is taken and the memory programming speed is slowed down. Thus, in step S110, the difference between the programming voltage at which the memory cell of the first row memory cells first passes programming verification and a constant delta voltage is recorded as an initial bias voltage IV2. Thus, when programming the next row memory cells, the programming voltage does not have to start with 2V and can start with the initial bias voltage IV2 that is higher than the initial bias voltage IV1 and increase afterwards, hence saving a large amount of programming time.
Then, in step S120, an initial bias voltage IVn is applied as the programming voltage to program the nth row memory cells, the programming voltage keeps increasing until the nth row memory cells all pass programming verification, and the difference between the programming voltage at which the memory cell of the nth row memory cells first passes programming verification and the constant delta voltage is recorded as an initial bias voltage IVn+1, wherein n is a positive integer greater than 1. Afterwards, in step S130, the initial bias voltage IVn+1 is applied as the programming voltage to program the (n+1)th row memory cells, and the programming voltage keeps increasing until the (n+1)th row memory cells all pass programming verification.
However, two half cells in a single memory cell may interact with each other. For example, after the left half cell is programmed, the charge captured in the left side of the memory cell will increase such that the current in the channel decreases. However, the current will also be decreased when the right half cell is read due to the second bit effect. That is, less hot electrons are needed to generate the same threshold voltage when programming the second bit (left half cell and right half cell are the second bit of each other) in a single memory cell. Due to the second bit effect, the programming voltage may be lower when both half cells are needed to be programmed. The learning programming bias voltage may always be lower than the programming voltage of the memory cell first passing programming verification. If only an initial bias voltage from previous row is applied, it may need more programming pulses to pass the programming verify for the memory cells that only has a half cell needed to be programmed, hence wasting programming time and resulting the memory programming speed be slowed down.